//编译阶段  执行阶段
console.log(typeof showName)    //typeof 获取变量类型
//showName();//代码文件-》导入内存，申请变量空间  没有这种东西
//代码是顺序执行的
//JS代码  在编译阶段发生了什么...  JS会把变量声明提升到当前作用域的最顶端
//scope 对象  将所有的变量放进去  代码运行的环境 执行上下文{ myName }  


//变量提升

console.log(myname);//报错      引用错误  undefined    变量提升    //执行语句
//var myname='极客'       //赋值语句    也是属于执行阶段
//更改
var myname; //编译阶段，也就是申请变量空间，初值为undefined     JS的类型是由值决定的  （弱类型性）
myname='极客';  //执行阶段,像变量空间赋值



//function showName(){//将函数与普通变量声明来做对比      //创建函数作用域
//    console.log('函数showName被执行了');
//};

//函数表达式
var showName=function(){
    console.log('函数showName被执行了！！！');
};